/*******************************************************************************
 * Copyright (c) 2011 UCLA Medical Imaging Informatics Group
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/lgpl.html
 ******************************************************************************/
package imageviewer.model.dicom.parser;

/** Interface to map DICOM tags to VR constants.
 *
 * @author gunter zeilinger
 * @version 1.0.0
 */
public interface VRMap {

    public int lookup(int tag);

    public static final VRMap DEFAULT = new VRMap() {
        
        public int lookup(int tag) {
            if ((tag & 0x0000ffff) == 0) {
                return VRs.UL;
            }
            switch (tag & 0xffff0000) {
                case 0x00000000:
                    return vrOfCommand(tag);
                case 0x00020000:
                    return vrOfFileMetaInfo(tag);
                case 0x00040000:
                    return vrOfDicomDir(tag);
            }
            if ((tag & 0x00010000) != 0) {
                return ((tag & 0x0000ff00) == 0 ? VRs.LO : VRs.UN);
            }
            return vrOfData(tag);
        }

        int vrOfCommand(int tag) {
            switch (tag) {
                case Tags.MoveDestination:
                case Tags.MoveOriginatorAET:
                    return VRs.AE;
                case Tags.OffendingElement:
                case Tags.AttributeIdentifierList:
                    return VRs.AT;
                case Tags.ErrorComment:
                    return VRs.LO;
                case Tags.AffectedSOPClassUID:
                case Tags.RequestedSOPClassUID:
                case Tags.AffectedSOPInstanceUID:
                case Tags.RequestedSOPInstanceUID:
                    return VRs.UI;
                case Tags.CommandLengthToEndRetired:
                case Tags.CommandRecognitionCodeRetired:
                case Tags.InitiatorRetired:
                case Tags.ReceiverRetired:
                case Tags.FindLocationRetired:
                case Tags.NumberOfMatchesRetired:
                case Tags.ResponseSequenceNumberRetired:
                case Tags.DialogReceiverRetired:
                case Tags.TerminalTypeRetired:
                case Tags.MessageSetIDRetired:
                case Tags.EndMessageIDRetired:
                case Tags.DisplayFormatRetired:
                case Tags.PagePositionIDRetired:
                case Tags.TextFormatIDRetired:
                case Tags.NorRevRetired:
                case Tags.AddGrayScaleRetired:
                case Tags.BordersRetired:
                case Tags.CopiesRetired:
                case Tags.MagnificationTypeRetired:
                case Tags.EraseRetired:
                case Tags.PrintRetired:
                    return VRs.UN;
                case Tags.CommandField:
                case Tags.MessageID:
                case Tags.MessageIDToBeingRespondedTo:
                case Tags.Priority:
                case Tags.DataSetType:
                case Tags.Status:
                case Tags.ErrorID:
                case Tags.EventTypeID:
                case Tags.ActionTypeID:
                case Tags.NumberOfRemainingSubOperations:
                case Tags.NumberOfCompletedSubOperations:
                case Tags.NumberOfFailedSubOperations:
                case Tags.NumberOfWarningSubOperations:
                case Tags.MoveOriginatorMessageID:
                    return VRs.US;
            }
            throw new IllegalArgumentException("Unrecognized Tag 0x"
                    + Integer.toHexString(tag));
        }
        
        int vrOfFileMetaInfo(int tag) {
            switch (tag) {
                case Tags.SourceApplicationEntityTitle:
                    return VRs.AE;
                case Tags.FileMetaInformationVersion:
                case Tags.PrivateInformation:
                    return VRs.OB;
                case Tags.ImplementationVersionName:
                    return VRs.SH;
                case Tags.MediaStorageSOPClassUID:
                case Tags.MediaStorageSOPInstanceUID:
                case Tags.TransferSyntaxUID:
                case Tags.ImplementationClassUID:
                case Tags.PrivateInformationCreatorUID:
                    return VRs.UI;
            }
            throw new IllegalArgumentException("Unrecognized Tag 0x"
                    + Integer.toHexString(tag));
        }
        
        int vrOfDicomDir(int tag) {
            switch (tag) {
                case Tags.FileSetID:
                case Tags.FileSetDescriptorFileID:
                case Tags.SpecificCharacterSetOfFileSetDescriptorFile:
                case Tags.DirectoryRecordType:
                case Tags.RefFileID:
                    return VRs.CS;
                case Tags.DirectoryRecordSeq:
                    return VRs.SQ;
                case Tags.PrivateRecordUID:
                case Tags.RefSOPClassUIDInFile:
                case Tags.RefSOPInstanceUIDInFile:
                case Tags.RefSOPTransferSyntaxUIDInFile:
                case Tags.ReferencedRelatedGeneralSOPClassUIDInFile:
                    return VRs.UI;
                case Tags.OffsetOfFirstRootDirectoryRecord:
                case Tags.OffsetOfLastRootDirectoryRecord:
                case Tags.OffsetOfNextDirectoryRecord:
                case Tags.OffsetOfLowerLevelDirectoryEntity:
                case Tags.MRDRDirectoryRecordOffset:
                case Tags.NumberOfReferences:
                    return VRs.UL;
                case Tags.FileSetConsistencyFlag:
                case Tags.RecordInUseFlag:
                    return VRs.US;
            }
            throw new IllegalArgumentException("Unrecognized Tag 0x"
                    + Integer.toHexString(tag));
        }
        
        int vrOfData(int tag) {
            switch (tag) {
                case Tags.RetrieveAET:
                case Tags.ScheduledStudyLocationAET:
                case Tags.ScheduledStationAET:
                case Tags.PerformedStationAET:
                case Tags.Originator:
                case Tags.DestinationAE:
                    return VRs.AE;
                case Tags.PatientAge:
                    return VRs.AS;
                case Tags.DimensionIndexPointer:
                case Tags.FunctionalGroupPointer:
                case Tags.FrameIncrementPointer:
                case Tags.SelectorAttribute:
                case Tags.SelectorSequencePointer:
                case Tags.SelectorATValue:
                case Tags.FailureAttributes:
                case Tags.OverrideParameterPointer:
                    return VRs.AT;
                case Tags.SpecificCharacterSet:
                case Tags.ImageType:
                case Tags.NuclearMedicineSeriesTypeRetired:
                case Tags.QueryRetrieveLevel:
                case Tags.InstanceAvailability:
                case Tags.Modality:
                case Tags.ModalitiesInStudy:
                case Tags.ConversionType:
                case Tags.PresentationIntentType:
                case Tags.MappingResource:
                case Tags.ContextGroupExtensionFlag:
                case Tags.ContextIdentifier:
                case Tags.LossyImageCompressionRetired:
                case Tags.TransducerPositionRetired:
                case Tags.TransducerOrientationRetired:
                case Tags.AnatomicStructureRetired:
                case Tags.FrameType:
                case Tags.PixelPresentation:
                case Tags.VolumetricProperties:
                case Tags.VolumeBasedCalculationTechnique:
                case Tags.ComplexImageComponent:
                case Tags.AcquisitionContrast:
                case Tags.PatientSex:
                case Tags.SmokingStatus:
                case Tags.BodyPartExamined:
                case Tags.ScanningSeq:
                case Tags.SeqVariant:
                case Tags.ScanOptions:
                case Tags.MRAcquisitionType:
                case Tags.AngioFlag:
                case Tags.TherapyType:
                case Tags.InterventionalStatus:
                case Tags.TherapyDescription:
                case Tags.AcquisitionTerminationCondition:
                case Tags.AcquisitionStartCondition:
                case Tags.ContrastBolusIngredient:
                case Tags.SynchronizationTrigger:
                case Tags.BeatRejectionFlag:
                case Tags.TableMotion:
                case Tags.TableType:
                case Tags.RotationDirection:
                case Tags.FieldOfViewShape:
                case Tags.RadiationSetting:
                case Tags.RectificationType:
                case Tags.RadiationMode:
                case Tags.Grid:
                case Tags.CollimatorType:
                case Tags.AnodeTargetMaterial:
                case Tags.WholeBodyTechnique:
                case Tags.InPlanePhaseEncodingDirection:
                case Tags.VariableFlipAngleFlag:
                case Tags.CassetteOrientation:
                case Tags.CassetteSize:
                case Tags.ColumnAngulation:
                case Tags.TomoType:
                case Tags.TomoClass:
                case Tags.PositionerMotion:
                case Tags.PositionerType:
                case Tags.ShutterShape:
                case Tags.CollimatorShape:
                case Tags.AcquisitionTimeSynchronized:
                case Tags.TimeDistributionProtocol:
                case Tags.VUSAcquisition:
                case Tags.PatientPosition:
                case Tags.ViewPosition:
                case Tags.TransducerType:
                case Tags.DetectorConditionsNominalFlag:
                case Tags.DetectorType:
                case Tags.DetectorConfiguration:
                case Tags.DetectorActiveShape:
                case Tags.FieldOfViewHorizontalFlip:
                case Tags.FilterMaterial:
                case Tags.ExposureControlMode:
                case Tags.ExposureStatus:
                case Tags.ContentQualification:
                case Tags.EchoPulseSeq:
                case Tags.InversionRecovery:
                case Tags.FlowCompensation:
                case Tags.MultipleSpinEcho:
                case Tags.MultiPlanarExcitation:
                case Tags.PhaseContrast:
                case Tags.TimeOfFlightContrast:
                case Tags.Spoiling:
                case Tags.SteadyStatePulseSeq:
                case Tags.EchoPlanarPulseSeq:
                case Tags.MagnetizationTransfer:
                case Tags.T2Preparation:
                case Tags.BloodSignalNulling:
                case Tags.SaturationRecovery:
                case Tags.SpectrallySelectedSuppression:
                case Tags.SpectrallySelectedExcitation:
                case Tags.SpatialPreSaturation:
                case Tags.Tagging:
                case Tags.OversamplingPhase:
                case Tags.GeometryOfKSpaceTraversal:
                case Tags.SegmentedKSpaceTraversal:
                case Tags.RectilinearPhaseEncodeReordering:
                case Tags.PartialFourierDirection:
                case Tags.CardiacSynchronizationTechnique:
                case Tags.ReceiveCoilType:
                case Tags.QuadratureReceiveCoil:
                case Tags.MultiCoilElementUsed:
                case Tags.TransmitCoilType:
                case Tags.VolumeLocalizationTechnique:
                case Tags.DeCoupling:
                case Tags.DeCoupledNucleus:
                case Tags.DeCouplingMethod:
                case Tags.KSpaceFiltering:
                case Tags.TimeDomainFiltering:
                case Tags.BaselineCorrection:
                case Tags.DiffusionDirectionality:
                case Tags.ParallelAcquisition:
                case Tags.ParallelAcquisitionTechnique:
                case Tags.PartialFourier:
                case Tags.CardiacSignalSource:
                case Tags.CoverageOfKSpace:
                case Tags.ResonantNucleus:
                case Tags.FrequencyCorrection:
                case Tags.DiffusionAnisotropyType:
                case Tags.BulkMotionStatus:
                case Tags.CardiacBeatRejectionTechnique:
                case Tags.RespiratoryMotionCompensationTechnique:
                case Tags.RespiratorySignalSource:
                case Tags.BulkMotionCompensationTechnique:
                case Tags.BulkMotionSignalSource:
                case Tags.ApplicableSafetyStandardAgency:
                case Tags.OperatingModeType:
                case Tags.OperatingMode:
                case Tags.SpecificAbsorptionRateDefinition:
                case Tags.GradientOutputType:
                case Tags.FlowCompensationDirection:
                case Tags.FirstOrderPhaseCorrection:
                case Tags.WaterReferencedPhaseCorrection:
                case Tags.MRSpectroscopyAcquisitionType:
                case Tags.RespiratoryCyclePosition:
                case Tags.CardiacCyclePosition:
                case Tags.AcquisitionType:
                case Tags.ReconstructionAlgorithm:
                case Tags.ConvolutionKernelGroup:
                case Tags.ExposureModulationType:
                case Tags.ConstantVolumeFlag:
                case Tags.FluoroscopyFlag:
                case Tags.ContrastBolusAgentAdministered:
                case Tags.ContrastBolusAgentDetected:
                case Tags.ContrastBolusAgentPhase:
                case Tags.PatientOrientation:
                case Tags.Laterality:
                case Tags.ImageLaterality:
                case Tags.ImageGeometryTypeRetired:
                case Tags.MaskingImageRetired:
                case Tags.FrameLaterality:
                case Tags.PhotometricInterpretation:
                case Tags.CorrectedImage:
                case Tags.CompressionCodeRetired:
                case Tags.QualityControlImage:
                case Tags.BurnedInAnnotation:
                case Tags.PixelIntensityRelationship:
                case Tags.RecommendedViewingMode:
                case Tags.ImplantPresent:
                case Tags.PartialView:
                case Tags.LossyImageCompression:
                case Tags.LossyImageCompressionMethod:
                case Tags.MaskOperation:
                case Tags.SignalDomain:
                case Tags.DataRepresentation:
                case Tags.SignalDomainRows:
                case Tags.StudyStatusID:
                case Tags.StudyPriorityID:
                case Tags.StudyComponentStatusID:
                case Tags.VisitStatusID:
                case Tags.WaveformOriginality:
                case Tags.ChannelStatus:
                case Tags.ChannelMode:
                case Tags.SPSStatus:
                case Tags.PPSStatus:
                case Tags.OrganExposed:
                case Tags.GPSPSStatus:
                case Tags.GPPPSStatus:
                case Tags.GPSPSPriority:
                case Tags.MultipleCopiesFlag:
                case Tags.InputAvailabilityFlag:
                case Tags.RelationshipType:
                case Tags.ValueType:
                case Tags.ContinuityOfContent:
                case Tags.TemporalRangeType:
                case Tags.CompletionFlag:
                case Tags.VerificationFlag:
                case Tags.TemplateIdentifier:
                case Tags.TemplateExtensionFlag:
                case Tags.CalibrationImage:
                case Tags.DeviceDiameterUnits:
                case Tags.PhaseDescription:
                case Tags.TypeOfDetectorMotion:
                case Tags.SliceProgressionDirection:
                case Tags.SeriesType:
                case Tags.Units:
                case Tags.CountsSource:
                case Tags.ReprojectionMethod:
                case Tags.RandomsCorrectionMethod:
                case Tags.DecayCorrection:
                case Tags.SecondaryCountsType:
                case Tags.CountsIncluded:
                case Tags.DeadTimeCorrectionFlag:
                case Tags.GraphicLayer:
                case Tags.BoundingBoxAnnotationUnits:
                case Tags.AnchorPointAnnotationUnits:
                case Tags.GraphicAnnotationUnits:
                case Tags.BoundingBoxTextHorizontalJustification:
                case Tags.AnchorPointVisibility:
                case Tags.GraphicType:
                case Tags.GraphicFilled:
                case Tags.ImageHorizontalFlip:
                case Tags.ContentLabel:
                case Tags.PresentationSizeMode:
                case Tags.ShapeType:
                case Tags.FrameOfReferenceTransformationMatrixType:
                case Tags.HangingProtocolLevel:
                case Tags.ImageSetSelectorUsageFlag:
                case Tags.ImageSetSelectorCategory:
                case Tags.RelativeTimeUnits:
                case Tags.SelectorAttributeVR:
                case Tags.SelectorCSValue:
                case Tags.PartialDataDisplayHandling:
                case Tags.ImageBoxLayoutType:
                case Tags.ImageBoxScrollDirection:
                case Tags.ImageBoxSmallScrollType:
                case Tags.ImageBoxLargeScrollType:
                case Tags.FilterByCategory:
                case Tags.FilterByAttributePresence:
                case Tags.FilterByOperator:
                case Tags.BlendingOperationType:
                case Tags.ReformattingOperationType:
                case Tags.ReformattingOperationInitialViewDirection:
                case Tags._3DRenderingType:
                case Tags.SortByCategory:
                case Tags.SortingDirection:
                case Tags.DisplaySetPatientOrientation:
                case Tags.VOIType:
                case Tags.PseudoColorType:
                case Tags.ShowGrayscaleInverted:
                case Tags.ShowImageTrueSizeFlag:
                case Tags.ShowGraphicAnnotationFlag:
                case Tags.ShowPatientDemographicsFlag:
                case Tags.ShowAcquisitionTechniquesFlag:
                case Tags.SOPInstanceStatus:
                case Tags.PrintPriority:
                case Tags.MediumType:
                case Tags.FilmDestination:
                case Tags.ColorImagePrintingFlag:
                case Tags.CollationFlag:
                case Tags.AnnotationFlag:
                case Tags.ImageOverlayFlag:
                case Tags.PresentationLUTFlag:
                case Tags.ImageBoxPresentationLUTFlag:
                case Tags.AnnotationDisplayFormatID:
                case Tags.FilmOrientation:
                case Tags.FilmSizeID:
                case Tags.PrinterResolutionID:
                case Tags.DefaultPrinterResolutionID:
                case Tags.MagnificationType:
                case Tags.SmoothingType:
                case Tags.DefaultMagnificationType:
                case Tags.OtherMagnificationTypesAvailable:
                case Tags.DefaultSmoothingType:
                case Tags.OtherSmoothingTypesAvailable:
                case Tags.BorderDensity:
                case Tags.EmptyImageDensity:
                case Tags.Trim:
                case Tags.Polarity:
                case Tags.RequestedDecimateCropBehavior:
                case Tags.RequestedResolutionID:
                case Tags.RequestedImageSizeFlag:
                case Tags.DecimateCropResult:
                case Tags.OverlayMagnificationType:
                case Tags.OverlaySmoothingType:
                case Tags.OverlayOrImageMagnification:
                case Tags.OverlayForegroundDensity:
                case Tags.OverlayBackgroundDensity:
                case Tags.OverlayModeRetired:
                case Tags.ThresholdDensityRetired:
                case Tags.PresentationLUTShape:
                case Tags.ExecutionStatus:
                case Tags.ExecutionStatusInfo:
                case Tags.PrinterStatus:
                case Tags.PrinterStatusInfo:
                case Tags.QueueStatus:
                case Tags.LabelUsingInformationExtractedFromInstances:
                case Tags.LabelStyleSelection:
                case Tags.BarcodeSymbology:
                case Tags.AllowMediaSplitting:
                case Tags.IncludeNonDICOMObjects:
                case Tags.IncludeDisplayApplication:
                case Tags.PreserveCompositeInstancesAfterMediaCreation:
                case Tags.AllowLossyCompression:
                case Tags.RequestPriority:
                case Tags.ReportedValuesOrigin:
                case Tags.RTImagePlane:
                case Tags.FluenceDataSource:
                case Tags.DVHType:
                case Tags.DoseUnits:
                case Tags.DoseType:
                case Tags.DoseSummationType:
                case Tags.DVHVolumeUnits:
                case Tags.DVHROIContributionType:
                case Tags.RTROIRelationship:
                case Tags.ROIGenerationAlgorithm:
                case Tags.ContourGeometricType:
                case Tags.RTROIInterpretedType:
                case Tags.ROIPhysicalProperty:
                case Tags.FrameOfReferenceTransformationType:
                case Tags.MeasuredDoseType:
                case Tags.TreatmentTerminationStatus:
                case Tags.TreatmentVerificationStatus:
                case Tags.ApplicationSetupCheck:
                case Tags.CurrentTreatmentStatus:
                case Tags.FractionGroupType:
                case Tags.BeamStopperPosition:
                case Tags.TreatmentIntent:
                case Tags.RTPlanGeometry:
                case Tags.DoseReferenceStructureType:
                case Tags.NominalBeamEnergyUnit:
                case Tags.DoseReferenceType:
                case Tags.RTPlanRelationship:
                case Tags.PrimaryDosimeterUnit:
                case Tags.RTBeamLimitingDeviceType:
                case Tags.BeamType:
                case Tags.RadiationType:
                case Tags.TreatmentDeliveryType:
                case Tags.WedgeType:
                case Tags.CompensatorType:
                case Tags.BlockType:
                case Tags.BlockDivergence:
                case Tags.ApplicatorType:
                case Tags.WedgePosition:
                case Tags.GantryRotationDirection:
                case Tags.BeamLimitingDeviceRotationDirection:
                case Tags.PatientSupportRotationDirection:
                case Tags.TableTopEccentricRotationDirection:
                case Tags.FixationDeviceType:
                case Tags.ShieldingDeviceType:
                case Tags.SetupTechnique:
                case Tags.SetupDeviceType:
                case Tags.BrachyTreatmentTechnique:
                case Tags.BrachyTreatmentType:
                case Tags.SourceType:
                case Tags.ApplicationSetupType:
                case Tags.BrachyAccessoryDeviceType:
                case Tags.SourceMovementType:
                case Tags.SourceApplicatorType:
                case Tags.ApprovalStatus:
                case Tags.InterpretationTypeID:
                case Tags.InterpretationStatusID:
                case Tags.WaveformSampleInterpretation:
                    return VRs.CS;
                case Tags.InstanceCreationDate:
                case Tags.StudyDate:
                case Tags.SeriesDate:
                case Tags.AcquisitionDate:
                case Tags.ContentDate:
                case Tags.OverlayDate:
                case Tags.CurveDate:
                case Tags.PatientBirthDate:
                case Tags.LastMenstrualDate:
                case Tags.DateOfSecondaryCapture:
                case Tags.DateOfLastCalibration:
                case Tags.DateOfLastDetectorCalibration:
                case Tags.ModifiedImageDateRetired:
                case Tags.StudyVerifiedDate:
                case Tags.StudyReadDate:
                case Tags.ScheduledStudyStartDate:
                case Tags.ScheduledStudyStopDate:
                case Tags.StudyArrivalDate:
                case Tags.StudyCompletionDate:
                case Tags.ScheduledAdmissionDate:
                case Tags.ScheduledDischargeDate:
                case Tags.AdmittingDate:
                case Tags.DischargeDate:
                case Tags.SPSStartDate:
                case Tags.SPSEndDate:
                case Tags.PPSStartDate:
                case Tags.PPSEndDate:
                case Tags.IssueDateOfImagingServiceRequest:
                case Tags.Date:
                case Tags.PresentationCreationDate:
                case Tags.CreationDate:
                case Tags.StructureSetDate:
                case Tags.TreatmentControlPointDate:
                case Tags.FirstTreatmentDate:
                case Tags.MostRecentTreatmentDate:
                case Tags.SafePositionExitDate:
                case Tags.SafePositionReturnDate:
                case Tags.TreatmentDate:
                case Tags.RTPlanDate:
                case Tags.AirKermaRateReferenceDate:
                case Tags.ReviewDate:
                case Tags.InterpretationRecordedDate:
                case Tags.InterpretationTranscriptionDate:
                case Tags.InterpretationApprovalDate:
                    return VRs.DA;
                case Tags.EventElapsedTime:
                case Tags.PatientSize:
                case Tags.PatientWeight:
                case Tags.InterventionDrugDose:
                case Tags.EnergyWindowCenterlineRetired:
                case Tags.EnergyWindowTotalWidthRetired:
                case Tags.SliceThickness:
                case Tags.KVP:
                case Tags.EffectiveDuration:
                case Tags.RepetitionTime:
                case Tags.EchoTime:
                case Tags.InversionTime:
                case Tags.NumberOfAverages:
                case Tags.ImagingFrequency:
                case Tags.MagneticFieldStrength:
                case Tags.SpacingBetweenSlices:
                case Tags.DataCollectionDiameter:
                case Tags.PercentSampling:
                case Tags.PercentPhaseFieldOfView:
                case Tags.PixelBandwidth:
                case Tags.ContrastBolusVolume:
                case Tags.ContrastBolusTotalDose:
                case Tags.ContrastFlowRate:
                case Tags.ContrastFlowDuration:
                case Tags.ContrastBolusIngredientConcentration:
                case Tags.SpatialResolution:
                case Tags.TriggerTime:
                case Tags.FrameTime:
                case Tags.FrameTimeVector:
                case Tags.FrameDelay:
                case Tags.ImageTriggerDelay:
                case Tags.MultiplexGroupTimeOffset:
                case Tags.TriggerTimeOffset:
                case Tags.RadiopharmaceuticalVolume:
                case Tags.RadionuclideTotalDose:
                case Tags.RadionuclideHalfLife:
                case Tags.RadionuclidePositronFraction:
                case Tags.RadiopharmaceuticalSpecificActivity:
                case Tags.ReconstructionDiameter:
                case Tags.DistanceSourceToDetector:
                case Tags.DistanceSourceToPatient:
                case Tags.EstimatedRadiographicMagnificationFactor:
                case Tags.GantryDetectorTilt:
                case Tags.GantryDetectorSlew:
                case Tags.TableHeight:
                case Tags.TableTraverse:
                case Tags.TableVerticalIncrement:
                case Tags.TableLateralIncrement:
                case Tags.TableLongitudinalIncrement:
                case Tags.TableAngle:
                case Tags.AngularPosition:
                case Tags.RadialPosition:
                case Tags.ScanArc:
                case Tags.AngularStep:
                case Tags.CenterOfRotationOffset:
                case Tags.RotationOffsetRetired:
                case Tags.AveragePulseWidth:
                case Tags.ImageAreaDoseProduct:
                case Tags.IntensifierSize:
                case Tags.ImagerPixelSpacing:
                case Tags.XFocusCenter:
                case Tags.YFocusCenter:
                case Tags.FocalSpot:
                case Tags.BodyPartThickness:
                case Tags.CompressionForce:
                case Tags.ScanVelocity:
                case Tags.FlipAngle:
                case Tags.SAR:
                case Tags.dBDt:
                case Tags.TomoLayerHeight:
                case Tags.TomoAngle:
                case Tags.TomoTime:
                case Tags.PositionerPrimaryAngle:
                case Tags.PositionerSecondaryAngle:
                case Tags.PositionerPrimaryAngleIncrement:
                case Tags.PositionerSecondaryAngleIncrement:
                case Tags.DetectorPrimaryAngle:
                case Tags.DetectorSecondaryAngle:
                case Tags.VUSPullbackRate:
                case Tags.IVUSGatedRate:
                case Tags.FocusDepth:
                case Tags.MechanicalIndex:
                case Tags.BoneThermalIndex:
                case Tags.CranialThermalIndex:
                case Tags.SoftTissueThermalIndex:
                case Tags.SoftTissueFocusThermalIndex:
                case Tags.SoftTissueSurfaceThermalIndex:
                case Tags.ImageTransformationMatrix:
                case Tags.ImageTranslationVector:
                case Tags.Sensitivity:
                case Tags.DetectorTemperature:
                case Tags.DetectorTimeSinceLastExposure:
                case Tags.DetectorActiveTime:
                case Tags.DetectorActivationOffsetFromExposure:
                case Tags.DetectorBinning:
                case Tags.DetectorElementPhysicalSize:
                case Tags.DetectorElementSpacing:
                case Tags.DetectorActiveDimension:
                case Tags.DetectorActiveOrigin:
                case Tags.FieldOfViewOrigin:
                case Tags.FieldOfViewRotation:
                case Tags.GridThickness:
                case Tags.GridPitch:
                case Tags.GridPeriod:
                case Tags.GridFocalDistance:
                case Tags.FilterThicknessMinimum:
                case Tags.FilterThicknessMaximum:
                case Tags.PhototimerSetting:
                case Tags.ExposureTimeInuS:
                case Tags.XRayTubeCurrentInuA:
                case Tags.ImagePositionRetired:
                case Tags.ImagePosition:
                case Tags.ImageOrientationRetired:
                case Tags.ImageOrientation:
                case Tags.TemporalResolution:
                case Tags.SliceLocation:
                case Tags.PixelSpacing:
                case Tags.ZoomFactor:
                case Tags.ZoomCenter:
                case Tags.WindowCenter:
                case Tags.WindowWidth:
                case Tags.RescaleIntercept:
                case Tags.RescaleSlope:
                case Tags.LossyImageCompressionRatio:
                case Tags.SamplingFrequency:
                case Tags.ChannelSensitivity:
                case Tags.ChannelSensitivityCorrectionFactor:
                case Tags.ChannelBaseline:
                case Tags.ChannelTimeSkew:
                case Tags.ChannelSampleSkew:
                case Tags.ChannelOffset:
                case Tags.FilterLowFrequency:
                case Tags.FilterHighFrequency:
                case Tags.NotchFilterFrequency:
                case Tags.NotchFilterBandwidth:
                case Tags.Quantity:
                case Tags.DistanceSourceToEntrance:
                case Tags.DistanceSourceToSupport:
                case Tags.XRayOutput:
                case Tags.HalfValueLayer:
                case Tags.OrganDose:
                case Tags.XOffsetInSlideCoordinateSystem:
                case Tags.YOffsetInSlideCoordinateSystem:
                case Tags.ZOffsetInSlideCoordinateSystem:
                case Tags.EntranceDoseInmGy:
                case Tags.RefTimeOffsets:
                case Tags.NumericValue:
                case Tags.DeviceLength:
                case Tags.DeviceDiameter:
                case Tags.DeviceVolume:
                case Tags.InterMarkerDistance:
                case Tags.EnergyWindowLowerLimit:
                case Tags.EnergyWindowUpperLimit:
                case Tags.TimeSlotTime:
                case Tags.StartAngle:
                case Tags.AxialAcceptance:
                case Tags.DetectorElementSize:
                case Tags.CoincidenceWindowWidth:
                case Tags.FrameReferenceTime:
                case Tags.SliceSensitivityFactor:
                case Tags.DecayFactor:
                case Tags.DoseCalibrationFactor:
                case Tags.ScatterFractionFactor:
                case Tags.DeadTimeFactor:
                case Tags.PresentationPixelSpacing:
                case Tags.SelectorDSValue:
                case Tags.PrinterPixelSpacing:
                case Tags.RequestedImageSize:
                case Tags.XRayImageReceptorTranslation:
                case Tags.XRayImageReceptorAngle:
                case Tags.RTImageOrientation:
                case Tags.ImagePlanePixelSpacing:
                case Tags.RTImagePosition:
                case Tags.RadiationMachineSAD:
                case Tags.RadiationMachineSSD:
                case Tags.RTImageSID:
                case Tags.SourceToReferenceObjectDistance:
                case Tags.MetersetExposure:
                case Tags.FluenceDataScale:
                case Tags.NormalizationPoint:
                case Tags.GridFrameOffsetVector:
                case Tags.DoseGridScaling:
                case Tags.DoseValue:
                case Tags.DVHNormalizationPoint:
                case Tags.DVHNormalizationDoseValue:
                case Tags.DVHDoseScaling:
                case Tags.DVHData:
                case Tags.DVHMinimumDose:
                case Tags.DVHMaximumDose:
                case Tags.DVHMeanDose:
                case Tags.ROIVolume:
                case Tags.ContourSlabThickness:
                case Tags.ContourOffsetVector:
                case Tags.ContourData:
                case Tags.ROIPhysicalPropertyValue:
                case Tags.FrameOfReferenceTransformationMatrix:
                case Tags.MeasuredDoseValue:
                case Tags.SpecifiedPrimaryMeterset:
                case Tags.SpecifiedSecondaryMeterset:
                case Tags.DeliveredPrimaryMeterset:
                case Tags.DeliveredSecondaryMeterset:
                case Tags.SpecifiedTreatmentTime:
                case Tags.DeliveredTreatmentTime:
                case Tags.SpecifiedMeterset:
                case Tags.DeliveredMeterset:
                case Tags.DoseRateDelivered:
                case Tags.CumulativeDoseToDoseReference:
                case Tags.CalculatedDoseReferenceDoseValue:
                case Tags.StartMeterset:
                case Tags.EndMeterset:
                case Tags.SpecifiedChannelTotalTime:
                case Tags.DeliveredChannelTotalTime:
                case Tags.SpecifiedPulseRepetitionInterval:
                case Tags.DeliveredPulseRepetitionInterval:
                case Tags.DoseReferencePointCoordinates:
                case Tags.NominalPriorDose:
                case Tags.ConstraintWeight:
                case Tags.DeliveryWarningDose:
                case Tags.DeliveryMaximumDose:
                case Tags.TargetMinimumDose:
                case Tags.TargetPrescriptionDose:
                case Tags.TargetMaximumDose:
                case Tags.TargetUnderdoseVolumeFraction:
                case Tags.OrganAtRiskFullVolumeDose:
                case Tags.OrganAtRiskLimitDose:
                case Tags.OrganAtRiskMaximumDose:
                case Tags.OrganAtRiskOverdoseVolumeFraction:
                case Tags.GantryAngleTolerance:
                case Tags.BeamLimitingDeviceAngleTolerance:
                case Tags.BeamLimitingDevicePositionTolerance:
                case Tags.PatientSupportAngleTolerance:
                case Tags.TableTopEccentricAngleTolerance:
                case Tags.TableTopVerticalPositionTolerance:
                case Tags.TableTopLongitudinalPositionTolerance:
                case Tags.TableTopLateralPositionTolerance:
                case Tags.BeamDoseSpecificationPoint:
                case Tags.BeamDose:
                case Tags.BeamMeterset:
                case Tags.BrachyApplicationSetupDoseSpecificationPoint:
                case Tags.BrachyApplicationSetupDose:
                case Tags.SourceAxisDistance:
                case Tags.SourceToBeamLimitingDeviceDistance:
                case Tags.LeafPositionBoundaries:
                case Tags.WedgeFactor:
                case Tags.WedgeOrientation:
                case Tags.SourceToWedgeTrayDistance:
                case Tags.TotalCompensatorTrayFactor:
                case Tags.SourceToCompensatorTrayDistance:
                case Tags.CompensatorPixelSpacing:
                case Tags.CompensatorPosition:
                case Tags.CompensatorTransmissionData:
                case Tags.CompensatorThicknessData:
                case Tags.TotalBlockTrayFactor:
                case Tags.SourceToBlockTrayDistance:
                case Tags.BlockThickness:
                case Tags.BlockTransmission:
                case Tags.BlockData:
                case Tags.CumulativeDoseReferenceCoefficient:
                case Tags.FinalCumulativeMetersetWeight:
                case Tags.NominalBeamEnergy:
                case Tags.DoseRateSet:
                case Tags.LeafJawPositions:
                case Tags.GantryAngle:
                case Tags.BeamLimitingDeviceAngle:
                case Tags.PatientSupportAngle:
                case Tags.TableTopEccentricAxisDistance:
                case Tags.TableTopEccentricAngle:
                case Tags.TableTopVerticalPosition:
                case Tags.TableTopLongitudinalPosition:
                case Tags.TableTopLateralPosition:
                case Tags.IsocenterPosition:
                case Tags.SurfaceEntryPoint:
                case Tags.SourceToSurfaceDistance:
                case Tags.CumulativeMetersetWeight:
                case Tags.SetupDeviceParameter:
                case Tags.TableTopVerticalSetupDisplacement:
                case Tags.TableTopLongitudinalSetupDisplacement:
                case Tags.TableTopLateralSetupDisplacement:
                case Tags.ActiveSourceDiameter:
                case Tags.ActiveSourceLength:
                case Tags.SourceEncapsulationNominalThickness:
                case Tags.SourceEncapsulationNominalTransmission:
                case Tags.SourceIsotopeHalfLife:
                case Tags.ReferenceAirKermaRate:
                case Tags.TotalReferenceAirKerma:
                case Tags.BrachyAccessoryDeviceNominalThickness:
                case Tags.BrachyAccessoryDeviceNominalTransmission:
                case Tags.ChannelLength:
                case Tags.ChannelTotalTime:
                case Tags.PulseRepetitionInterval:
                case Tags.SourceApplicatorLength:
                case Tags.SourceApplicatorWallNominalThickness:
                case Tags.SourceApplicatorWallNominalTransmission:
                case Tags.SourceApplicatorStepSize:
                case Tags.TransferTubeLength:
                case Tags.ChannelShieldNominalThickness:
                case Tags.ChannelShieldNominalTransmission:
                case Tags.FinalCumulativeTimeWeight:
                case Tags.ControlPointRelativePosition:
                case Tags.ControlPoint3DPosition:
                case Tags.CumulativeTimeWeight:
                case Tags.StartCumulativeMetersetWeight:
                case Tags.EndCumulativeMetersetWeight:
                    return VRs.DS;
                case Tags.AcquisitionDatetime:
                case Tags.ContextGroupVersion:
                case Tags.ContextGroupLocalVersion:
                case Tags.FrameAcquisitionDatetime:
                case Tags.FrameReferenceDatetime:
                case Tags.ContributionDateTime:
                case Tags.SPSStartDateAndTime:
                case Tags.ExpectedCompletionDateAndTime:
                case Tags.VerificationDateTime:
                case Tags.ObservationDateTime:
                case Tags.DateTime:
                case Tags.RefDatetime:
                case Tags.TemplateVersion:
                case Tags.TemplateLocalVersion:
                case Tags.HangingProtocolCreationDatetime:
                case Tags.SOPAuthorizationDateAndTime:
                    return VRs.DT;
                case Tags.ReferencePixelPhysicalValueX:
                case Tags.ReferencePixelPhysicalValueY:
                case Tags.PhysicalDeltaX:
                case Tags.PhysicalDeltaY:
                case Tags.DopplerCorrectionAngle:
                case Tags.SteeringAngle:
                case Tags.TableOfYBreakPoints:
                case Tags.TagAngleFirstAxis:
                case Tags.TagSpacingFirstDimension:
                case Tags.TagThickness:
                case Tags.SpectralWidth:
                case Tags.ChemicalShiftReference:
                case Tags.DeCouplingFrequency:
                case Tags.DeCouplingChemicalShiftReference:
                case Tags.ParallelReductionFactorInPlane:
                case Tags.CardiacRRIntervalSpecified:
                case Tags.AcquisitionDuration:
                case Tags.InversionTimes:
                case Tags.EffectiveEchoTime:
                case Tags.DiffusionBValue:
                case Tags.DiffusionGradientOrientation:
                case Tags.VelocityEncodingDirection:
                case Tags.VelocityEncodingMinimumValue:
                case Tags.TransmitterFrequency:
                case Tags.SlabThickness:
                case Tags.SlabOrientation:
                case Tags.MidSlabPosition:
                case Tags.ParallelReductionFactorOutOfPlane:
                case Tags.ParallelReductionFactorSecondInPlane:
                case Tags.SpecificAbsorptionRateValue:
                case Tags.GradientOutput:
                case Tags.TaggingDelay:
                case Tags.ChemicalShiftsMinimumIntegrationLimit:
                case Tags.ChemicalShiftsMaximumIntegrationLimit:
                case Tags.VelocityEncodingMaximumValue:
                case Tags.TagSpacingSecondDimension:
                case Tags.FrameAcquisitionDuration:
                case Tags.TubeAngle:
                case Tags.RevolutionTime:
                case Tags.SingleCollimationWidth:
                case Tags.TotalCollimationWidth:
                case Tags.TableSpeed:
                case Tags.TableFeedPerRotation:
                case Tags.SpiralPitchFactor:
                case Tags.DataCollectionCenterPatient:
                case Tags.ReconstructionFieldOfView:
                case Tags.ReconstructionTargetCenterPatient:
                case Tags.ReconstructionAngle:
                case Tags.ReconstructionPixelSpacing:
                case Tags.EstimatedDoseSaving:
                case Tags.TablePosition:
                case Tags.ExposureTimeInMs:
                case Tags.XRayTubeCurrentInMA:
                case Tags.ExposureInMAs:
                case Tags.DistanceSourceToDataCollectionCenter:
                case Tags.CTDIvol:
                case Tags.TriggerDelayTime:
                case Tags.RealWorldValueLUTData:
                case Tags.RealWorldValueIntercept:
                case Tags.RealWorldValueSlope:
                case Tags.ContourUncertaintyRadius:
                case Tags.SelectorFDValue:
                case Tags.DisplayEnvironmentSpatialPosition:
                case Tags.CineRelativeToRealTime:
                case Tags.ReformattingThickness:
                case Tags.ReformattingInterval:
                    return VRs.FD;
                case Tags.TableOfParameterValues:
                case Tags.RWaveTimeVector:
                case Tags.MaskSubPixelShift:
                case Tags.BoundingBoxTopLeftHandCorner:
                case Tags.BoundingBoxBottomRightHandCorner:
                case Tags.AnchorPoint:
                case Tags.GraphicData:
                case Tags.PresentationPixelMagnificationRatio:
                case Tags.SelectorFLValue:
                    return VRs.FL;
                case Tags.RefFrameNumber:
                case Tags.StageNumber:
                case Tags.NumberOfStages:
                case Tags.ViewNumber:
                case Tags.NumberOfEventTimers:
                case Tags.NumberOfViewsInStage:
                case Tags.StartTrim:
                case Tags.StopTrim:
                case Tags.RecommendedDisplayFrameRate:
                case Tags.CineRate:
                case Tags.CountsAccumulated:
                case Tags.AcquisitionStartConditionData:
                case Tags.AcquisitionTerminationConditionData:
                case Tags.EchoNumber:
                case Tags.NumberOfPhaseEncodingSteps:
                case Tags.EchoTrainLength:
                case Tags.SyringeCounts:
                case Tags.NominalInterval:
                case Tags.LowRRValue:
                case Tags.HighRRValue:
                case Tags.IntervalsAcquired:
                case Tags.IntervalsRejected:
                case Tags.SkipBeats:
                case Tags.HeartRate:
                case Tags.CardiacNumberOfImages:
                case Tags.TriggerWindow:
                case Tags.FieldOfViewDimension:
                case Tags.ExposureTime:
                case Tags.XRayTubeCurrent:
                case Tags.Exposure:
                case Tags.ExposureInuAs:
                case Tags.GeneratorPower:
                case Tags.FocalDistance:
                case Tags.ActualFrameDuration:
                case Tags.CountRate:
                case Tags.ScanLength:
                case Tags.RelativeXRayExposure:
                case Tags.NumberofTomosynthesisSourceImages:
                case Tags.ShutterLeftVerticalEdge:
                case Tags.ShutterRightVerticalEdge:
                case Tags.ShutterUpperHorizontalEdge:
                case Tags.ShutterLowerHorizontalEdge:
                case Tags.CenterOfCircularShutter:
                case Tags.RadiusOfCircularShutter:
                case Tags.VerticesOfPolygonalShutter:
                case Tags.CollimatorLeftVerticalEdge:
                case Tags.CollimatorRightVerticalEdge:
                case Tags.CollimatorUpperHorizontalEdge:
                case Tags.CollimatorLowerHorizontalEdge:
                case Tags.CenterOfCircularCollimator:
                case Tags.RadiusOfCircularCollimator:
                case Tags.VerticesOfPolygonalCollimator:
                case Tags.VUSPullbackStartFrameNumber:
                case Tags.IVUSPullbackStopFrameNumber:
                case Tags.LesionNumber:
                case Tags.DepthOfScanField:
                case Tags.ExposuresOnDetectorSinceLastCalibration:
                case Tags.ExposuresOnDetectorSinceManufactured:
                case Tags.GridAspectRatio:
                case Tags.SeriesNumber:
                case Tags.AcquisitionNumber:
                case Tags.InstanceNumber:
                case Tags.IsotopeNumberRetired:
                case Tags.PhaseNumberRetired:
                case Tags.IntervalNumberRetired:
                case Tags.TimeSlotNumberRetired:
                case Tags.AngleNumberRetired:
                case Tags.ItemNumber:
                case Tags.OverlayNumber:
                case Tags.CurveNumber:
                case Tags.LUTNumber:
                case Tags.TemporalPositionIdentifier:
                case Tags.NumberOfTemporalPositions:
                case Tags.SeriesInStudy:
                case Tags.AcquisitionsInSeriesRetired:
                case Tags.ImagesInAcquisition:
                case Tags.AcquisitionsInStudy:
                case Tags.OtherStudyNumbers:
                case Tags.NumberOfPatientRelatedStudies:
                case Tags.NumberOfPatientRelatedSeries:
                case Tags.NumberOfPatientRelatedInstances:
                case Tags.NumberOfStudyRelatedSeries:
                case Tags.NumberOfStudyRelatedInstances:
                case Tags.NumberOfSeriesRelatedInstances:
                case Tags.NumberOfFrames:
                case Tags.PixelAspectRatio:
                case Tags.WaveformChannelNumber:
                case Tags.ChannelIdentificationCode:
                case Tags.ResidualSyringeCounts:
                case Tags.PhaseDelay:
                case Tags.PauseBetweenFrames:
                case Tags.TriggerVector:
                case Tags.AxialMash:
                case Tags.TransverseMash:
                case Tags.PrimaryCountsAccumulated:
                case Tags.SecondaryCountsAccumulated:
                case Tags.GraphicLayerOrder:
                case Tags.PresentationPixelAspectRatio:
                case Tags.SelectorISValue:
                case Tags.NumberOfCopies:
                case Tags.MemoryAllocation:
                case Tags.MaximumMemoryAllocation:
                case Tags.MaximumCollatedFilms:
                case Tags.NumberOfFilms:
                case Tags.FractionNumber:
                case Tags.DVHNumberOfBins:
                case Tags.ROINumber:
                case Tags.ROIDisplayColor:
                case Tags.NumberOfContourPoints:
                case Tags.ContourNumber:
                case Tags.AttachedContours:
                case Tags.ObservationNumber:
                case Tags.RefROINumber:
                case Tags.CurrentFractionNumber:
                case Tags.NumberOfFractionsDelivered:
                case Tags.MeasuredDoseReferenceNumber:
                case Tags.CalculatedDoseReferenceNumber:
                case Tags.RefMeasuredDoseReferenceNumber:
                case Tags.RefCalculatedDoseReferenceNumber:
                case Tags.RefBrachyAccessoryDeviceNumber:
                case Tags.SpecifiedNumberOfPulses:
                case Tags.DeliveredNumberOfPulses:
                case Tags.RefSourceApplicatorNumber:
                case Tags.RefChannelShieldNumber:
                case Tags.RefFractionNumber:
                case Tags.DoseReferenceNumber:
                case Tags.ToleranceTableNumber:
                case Tags.FractionGroupNumber:
                case Tags.NumberOfFractionsPlanned:
                case Tags.NumberOfFractionsPerDay:
                case Tags.RepeatFractionCycleLength:
                case Tags.NumberOfBeams:
                case Tags.NumberOfBrachyApplicationSetups:
                case Tags.NumberOfLeafJawPairs:
                case Tags.BeamNumber:
                case Tags.ReferenceImageNumber:
                case Tags.NumberOfWedges:
                case Tags.WedgeNumber:
                case Tags.WedgeAngle:
                case Tags.NumberOfCompensators:
                case Tags.CompensatorNumber:
                case Tags.CompensatorRows:
                case Tags.CompensatorColumns:
                case Tags.NumberOfBoli:
                case Tags.NumberOfBlocks:
                case Tags.BlockNumber:
                case Tags.BlockNumberOfPoints:
                case Tags.NumberOfControlPoints:
                case Tags.ControlPointIndex:
                case Tags.PatientSetupNumber:
                case Tags.SourceNumber:
                case Tags.ApplicationSetupNumber:
                case Tags.TemplateNumber:
                case Tags.BrachyAccessoryDeviceNumber:
                case Tags.ChannelNumber:
                case Tags.NumberOfPulses:
                case Tags.SourceApplicatorNumber:
                case Tags.TransferTubeNumber:
                case Tags.ChannelShieldNumber:
                case Tags.RefBeamNumber:
                case Tags.RefReferenceImageNumber:
                case Tags.RefBrachyApplicationSetupNumber:
                case Tags.RefSourceNumber:
                case Tags.RefFractionGroupNumber:
                case Tags.RefDoseReferenceNumber:
                case Tags.RefPatientSetupNumber:
                case Tags.RefToleranceTableNumber:
                case Tags.RefWedgeNumber:
                case Tags.RefCompensatorNumber:
                case Tags.RefBlockNumber:
                case Tags.RefControlPointIndex:
                    return VRs.IS;
                case Tags.Manufacturer:
                case Tags.InstitutionName:
                case Tags.CodeMeaning:
                case Tags.CodingSchemeRegistry:
                case Tags.StudyDescription:
                case Tags.SeriesDescription:
                case Tags.InstitutionalDepartmentName:
                case Tags.AdmittingDiagnosisDescription:
                case Tags.ManufacturerModelName:
                case Tags.EventTimerName:
                case Tags.PatientID:
                case Tags.IssuerOfPatientID:
                case Tags.OtherPatientIDs:
                case Tags.PatientAddress:
                case Tags.InsurancePlanIdentificationRetired:
                case Tags.MilitaryRank:
                case Tags.BranchOfService:
                case Tags.MedicalRecordLocator:
                case Tags.MedicalAlerts:
                case Tags.ContrastAllergies:
                case Tags.CountryOfResidence:
                case Tags.RegionOfResidence:
                case Tags.PatientReligiousPreference:
                case Tags.ClinicalTrialSponsorName:
                case Tags.ClinicalTrialProtocolID:
                case Tags.ClinicalTrialProtocolName:
                case Tags.ClinicalTrialSiteID:
                case Tags.ClinicalTrialSiteName:
                case Tags.ClinicalTrialSubjectID:
                case Tags.ClinicalTrialSubjectReadingID:
                case Tags.ClinicalTrialTimePointID:
                case Tags.CoordinatingCenterName:
                case Tags.ContrastBolusAgent:
                case Tags.RadionuclideRetired:
                case Tags.Radiopharmaceutical:
                case Tags.InterventionDrugName:
                case Tags.DeviceSerialNumber:
                case Tags.PlateID:
                case Tags.SecondaryCaptureDeviceID:
                case Tags.HardcopyCreationDeviceID:
                case Tags.SecondaryCaptureDeviceManufacturer:
                case Tags.HardcopyDeviceManufacturer:
                case Tags.SecondaryCaptureDeviceManufacturerModelName:
                case Tags.SecondaryCaptureDeviceSoftwareVersion:
                case Tags.HardcopyDeviceSoftwareVersion:
                case Tags.HardcopyDeviceManfuacturerModelName:
                case Tags.SoftwareVersion:
                case Tags.DigitalImageFormatAcquired:
                case Tags.ProtocolName:
                case Tags.ContrastBolusRoute:
                case Tags.TriggerSourceOrType:
                case Tags.FramingType:
                case Tags.RadiopharmaceuticalRoute:
                case Tags.PVCRejection:
                case Tags.TypeOfFilters:
                case Tags.PhosphorType:
                case Tags.AcquisitionDeviceProcessingDescription:
                case Tags.AcquisitionDeviceProcessingCode:
                case Tags.TransducerData:
                case Tags.ProcessingFunction:
                case Tags.PostprocessingFunction:
                case Tags.ReceiveCoilManufacturerName:
                case Tags.MultiCoilConfiguration:
                case Tags.TransmitCoilManufacturerName:
                case Tags.ApplicableSafetyStandardDescription:
                case Tags.PositionReferenceIndicator:
                case Tags.ModifyingDeviceManufacturerRetired:
                case Tags.ModifiedImageDescriptionRetired:
                case Tags.OriginalImageIdentificationRetired:
                case Tags.OriginalImageIdentificationNomenclatureRetired:
                case Tags.DimensionIndexPrivateCreator:
                case Tags.FunctionalGroupPrivateCreator:
                case Tags.RescaleType:
                case Tags.WindowCenterWidthExplanation:
                case Tags.LUTExplanation:
                case Tags.ModalityLUTType:
                case Tags.FrameOfInterestDescription:
                case Tags.StudyIDIssuer:
                case Tags.ScheduledStudyLocation:
                case Tags.ReasonforStudy:
                case Tags.RequestingService:
                case Tags.RequestedProcedureDescription:
                case Tags.RequestedContrastAgent:
                case Tags.AdmissionID:
                case Tags.IssuerOfAdmissionID:
                case Tags.RouteOfAdmissions:
                case Tags.ScheduledPatientInstitutionResidence:
                case Tags.DischargeDiagnosisDescription:
                case Tags.SpecialNeeds:
                case Tags.CurrentPatientLocation:
                case Tags.PatientInstitutionResidence:
                case Tags.PatientState:
                case Tags.ChannelDerivationDescription:
                case Tags.SPSDescription:
                case Tags.PreMedication:
                case Tags.PPSDescription:
                case Tags.PerformedProcedureTypeDescription:
                case Tags.SpecimenAccessionNumber:
                case Tags.SpecimenIdentifier:
                case Tags.SlideIdentifier:
                case Tags.ReasonForTheRequestedProcedure:
                case Tags.PatientTransportArrangements:
                case Tags.RequestedProcedureLocation:
                case Tags.ConfidentialityCode:
                case Tags.PersonTelephoneNumbers:
                case Tags.ReasonForTheImagingServiceRequest:
                case Tags.PlacerOrderNumber:
                case Tags.FillerOrderNumber:
                case Tags.ConfidentialityPatientData:
                case Tags.HumanPerformerOrganization:
                case Tags.VerifyingOrganization:
                case Tags.CompletionFlagDescription:
                case Tags.MIMETypeOfEncapsulatedDocument:
                case Tags.DeviceDescription:
                case Tags.AttenuationCorrectionMethod:
                case Tags.ReconstructionMethod:
                case Tags.DetectorLinesOfResponseUsed:
                case Tags.ScatterCorrectionMethod:
                case Tags.HistogramExplanation:
                case Tags.GraphicLayerDescription:
                case Tags.ContentDescription:
                case Tags.HangingProtocolDescription:
                case Tags.HangingProtocolCreator:
                case Tags.HangingProtocolUserGroupName:
                case Tags.ImageSetLabel:
                case Tags.SelectorSequencePointerPrivateCreator:
                case Tags.SelectorAttributePrivateCreator:
                case Tags.SelectorLOValue:
                case Tags.DisplaySetPresentationGroupDescription:
                case Tags.TopicTitle:
                case Tags.TopicAuthor:
                case Tags.TopicKeyWords:
                case Tags.AuthorizationEquipmentCertificationNumber:
                case Tags.FilmSessionLabel:
                case Tags.TextString:
                case Tags.PrinterName:
                case Tags.RequestedMediaApplicationProfile:
                case Tags.RTImageName:
                case Tags.DoseComment:
                case Tags.StructureSetName:
                case Tags.ROIName:
                case Tags.ROIGenerationDescription:
                case Tags.FrameOfReferenceTransformationComment:
                case Tags.SourceSerialNumber:
                case Tags.RTPlanName:
                case Tags.TreatmentProtocols:
                case Tags.TreatmentSites:
                case Tags.DoseReferenceDescription:
                case Tags.BeamName:
                case Tags.ImagingDeviceSpecificAcquisitionParameters:
                case Tags.BlockName:
                case Tags.ApplicatorDescription:
                case Tags.PatientAdditionalPosition:
                case Tags.SourceManufacturer:
                case Tags.SourceIsotopeName:
                case Tags.ApplicationSetupName:
                case Tags.ApplicationSetupManufacturer:
                case Tags.TemplateName:
                case Tags.BrachyAccessoryDeviceName:
                case Tags.SourceApplicatorName:
                case Tags.SourceApplicatorManufacturer:
                case Tags.ChannelShieldName:
                case Tags.ResultsIDIssuer:
                case Tags.ReferenceToRecordedSound:
                case Tags.DistributionAddress:
                case Tags.InterpretationIDIssuer:
                    return VRs.LO;
                case Tags.StudyCommentsRetired:
                case Tags.AdditionalPatientHistory:
                case Tags.PatientComments:
                case Tags.SeriesCommentsRetired:
                case Tags.DetectorDescription:
                case Tags.DetectorMode:
                case Tags.GridAbsorbingMaterial:
                case Tags.GridSpacingMaterial:
                case Tags.ExposureControlModeDescription:
                case Tags.ImageComments:
                case Tags.FrameComments:
                case Tags.PixelCommentsRetired:
                case Tags.StudyComments:
                case Tags.VisitComments:
                case Tags.SPSComments:
                case Tags.RequestedProcedureComments:
                case Tags.ImagingServiceRequestComments:
                case Tags.SelectorLTValue:
                case Tags.SOPAuthorizationComment:
                case Tags.ConfigurationInformationDescription:
                case Tags.MediaDisposition:
                case Tags.BarcodeValue:
                case Tags.FractionPattern:
                case Tags.ArbitraryRetired:
                case Tags.ArbitraryCommentsRetired:
                case Tags.InterpretationDiagnosisDescription:
                    return VRs.LT;
                case Tags.EncapsulatedDocument:
                case Tags.EncryptedContent:
                case Tags.DataSetTrailingPadding:
                    return VRs.OB;
                case Tags.FirstOrderPhaseCorrectionAngle:
                case Tags.SpectroscopyData:
                    return VRs.OF;
                case Tags.RedPaletteColorLUTData:
                case Tags.GreenPaletteColorLUTData:
                case Tags.BluePaletteColorLUTData:
                case Tags.SegmentedRedPaletteColorLUTData:
                case Tags.SegmentedGreenPaletteColorLUTData:
                case Tags.SegmentedBluePaletteColorLUTData:
                case Tags.LUTData:
                case Tags.ChannelMinimumValue:
                case Tags.ChannelMaximumValue:
                case Tags.WaveformPaddingValue:
                case Tags.WaveformData:
                case Tags.PixelData:
                    return VRs.OW;
                case Tags.ReferringPhysicianName:
                case Tags.PhysicianOfRecord:
                case Tags.PerformingPhysicianName:
                case Tags.NameOfPhysicianReadingStudy:
                case Tags.OperatorName:
                case Tags.PatientName:
                case Tags.OtherPatientNames:
                case Tags.PatientBirthName:
                case Tags.PatientMotherBirthName:
                case Tags.RequestingPhysician:
                case Tags.ScheduledPerformingPhysicianName:
                case Tags.NamesOfIntendedRecipientsOfResults:
                case Tags.OrderEnteredBy:
                case Tags.HumanPerformerName:
                case Tags.VerifyingObserverName:
                case Tags.PersonName:
                case Tags.PresentationCreatorName:
                case Tags.SelectorPNValue:
                case Tags.ROIInterpreter:
                case Tags.ReviewerName:
                case Tags.InterpretationRecorder:
                case Tags.InterpretationTranscriber:
                case Tags.InterpretationAuthor:
                case Tags.PhysicianApprovingInterpretation:
                case Tags.DistributionName:
                    return VRs.PN;
                case Tags.AccessionNumber:
                case Tags.ReferringPhysicianPhoneNumbers:
                case Tags.CodeValue:
                case Tags.CodingSchemeDesignator:
                case Tags.CodingSchemeVersion:
                case Tags.TimezoneOffsetFromUTC:
                case Tags.StationName:
                case Tags.StageName:
                case Tags.PatientPhoneNumbers:
                case Tags.EthnicGroup:
                case Tags.Occupation:
                case Tags.SequenceName:
                case Tags.ImagedNucleus:
                case Tags.VideoImageFormatAcquired:
                case Tags.FilterType:
                case Tags.CollimatorGridName:
                case Tags.ConvolutionKernel:
                case Tags.ReceiveCoilName:
                case Tags.TransmitCoilName:
                case Tags.PlateType:
                case Tags.TimeSource:
                case Tags.OutputPower:
                case Tags.DetectorID:
                case Tags.PulseSequenceName:
                case Tags.MultiCoilElementName:
                case Tags.ImageFilter:
                case Tags.StudyID:
                case Tags.ModifyingDeviceIDRetired:
                case Tags.ModifiedImageIDRetired:
                case Tags.StackID:
                case Tags.MultiplexGroupLabel:
                case Tags.ChannelLabel:
                case Tags.SPSID:
                case Tags.ScheduledStationName:
                case Tags.SPSLocation:
                case Tags.PerformedStationName:
                case Tags.PerformedLocation:
                case Tags.PPSID:
                case Tags.RequestedProcedureID:
                case Tags.RequestedProcedurePriority:
                case Tags.PlacerOrderNumberProcedureRetired:
                case Tags.FillerOrderNumberProcedureRetired:
                case Tags.ReportingPriority:
                case Tags.PlacerOrderNumberImagingServiceRequestRetired:
                case Tags.FillerOrderNumberImagingServiceRequestRetired:
                case Tags.OrderEntererLocation:
                case Tags.OrderCallbackPhoneNumber:
                case Tags.LUTLabel:
                case Tags.EnergyWindowName:
                case Tags.ImageID:
                case Tags.FiducialIdentifier:
                case Tags.HangingProtocolName:
                case Tags.SelectorSHValue:
                case Tags.StorageMediaFileSetID:
                case Tags.PrintJobID:
                case Tags.OwnerID:
                case Tags.PrintQueueID:
                case Tags.RTImageLabel:
                case Tags.RadiationMachineName:
                case Tags.StructureSetLabel:
                case Tags.ROIObservationLabel:
                case Tags.TreatmentTerminationCode:
                case Tags.RTPlanLabel:
                case Tags.ToleranceTableLabel:
                case Tags.TreatmentMachineName:
                case Tags.WedgeID:
                case Tags.MaterialID:
                case Tags.CompensatorID:
                case Tags.BlockTrayID:
                case Tags.ApplicatorID:
                case Tags.FixationDeviceLabel:
                case Tags.FixationDevicePosition:
                case Tags.ShieldingDeviceLabel:
                case Tags.ShieldingDevicePosition:
                case Tags.SetupDeviceLabel:
                case Tags.TemplateType:
                case Tags.BrachyAccessoryDeviceID:
                case Tags.SourceApplicatorID:
                case Tags.ChannelShieldID:
                case Tags.ResultsID:
                case Tags.InterpretationID:
                    return VRs.SH;
                case Tags.ReferencePixelX0:
                case Tags.ReferencePixelY0:
                case Tags.DisplayedAreaTopLeftHandCorner:
                case Tags.DisplayedAreaBottomRightHandCorner:
                case Tags.SelectorSLValue:
                    return VRs.SL;
                case Tags.InstitutionCodeSeq:
                case Tags.ReferringPhysicianIdentificationSeq:
                case Tags.CodingSchemeIdentificationSeq:
                case Tags.ProcedureCodeSeq:
                case Tags.PhysicianOfRecordIdentificationSeq:
                case Tags.PerformingPhysicianIdentificationSeq:
                case Tags.PhysicianReadingStudyIdentificationSeq:
                case Tags.OperatorIdentificationSeq:
                case Tags.AdmittingDiagnosisCodeSeq:
                case Tags.RefResultsSeq:
                case Tags.RefStudySeq:
                case Tags.RefPPSSeq:
                case Tags.RefSeriesSeq:
                case Tags.RefPatientSeq:
                case Tags.RefVisitSeq:
                case Tags.RefOverlaySeq:
                case Tags.ReferencedWaveformSeq:
                case Tags.RefImageSeq:
                case Tags.RefCurveSeq:
                case Tags.RefInstanceSeq:
                case Tags.FailedSOPSeq:
                case Tags.RefSOPSeq:
                case Tags.StudiesContainingOtherReferencedInstancesSeq:
                case Tags.SourceImageSeq:
                case Tags.AnatomicRegionSeq:
                case Tags.AnatomicRegionModifierSeq:
                case Tags.PrimaryAnatomicStructureSeq:
                case Tags.AnatomicStructureSpaceRegionSeq:
                case Tags.PrimaryAnatomicStructureModifierSeq:
                case Tags.TransducerPositionSeq:
                case Tags.TransducerPositionModifierSeq:
                case Tags.TransducerOrientationSeq:
                case Tags.TransducerOrientationModifierSeq:
                case Tags.AlternateRepresentationSeq:
                case Tags.RefRawDataSeq:
                case Tags.DerivationImageSeq:
                case Tags.RefImageEvidenceSeq:
                case Tags.SourceImageEvidenceSeq:
                case Tags.DerivationCodeSeq:
                case Tags.RefGrayscalePresentationStateSeq:
                case Tags.PatientInsurancePlanCodeSeq:
                case Tags.ContrastBolusAgentSeq:
                case Tags.ContrastBolusAdministrationRouteSeq:
                case Tags.InterventionDrugInformationSeq:
                case Tags.InterventionDrugCodeSeq:
                case Tags.AdditionalDrugSeq:
                case Tags.InterventionalTherapySeq:
                case Tags.ProjectionEponymousNameCodeSeq:
                case Tags.SeqOfUltrasoundRegions:
                case Tags.MRImagingModifierSeq:
                case Tags.MRReceiveCoilSeq:
                case Tags.MultiCoilDefinitionSeq:
                case Tags.MRTransmitCoilSeq:
                case Tags.DiffusionGradientDirectionSeq:
                case Tags.ChemicalShiftSeq:
                case Tags.MRSpectroscopyFOVGeometrySeq:
                case Tags.MRSpatialSaturationSeq:
                case Tags.MRTimingAndRelatedParametersSeq:
                case Tags.MREchoSeq:
                case Tags.MRModifierSeq:
                case Tags.MRDiffusionSeq:
                case Tags.CardiacTriggerSeq:
                case Tags.MRAveragesSeq:
                case Tags.MRFOVGeometrySeq:
                case Tags.VolumeLocalizationSeq:
                case Tags.MRMetaboliteMapSeq:
                case Tags.OperatingModeSeq:
                case Tags.MRVelocityEncodingSeq:
                case Tags.MRImageFrameTypeSeq:
                case Tags.MRSpectroscopyFrameTypeSeq:
                case Tags.SpecificAbsorptionRateSeq:
                case Tags.CTAcquisitionTypeSeq:
                case Tags.CTAcquisitionDetailsSeq:
                case Tags.CTTableDynamicsSeq:
                case Tags.CTGeometrySeq:
                case Tags.CTReconstructionSeq:
                case Tags.CTExposureSeq:
                case Tags.CTXRayDetailsSeq:
                case Tags.CTPositionSeq:
                case Tags.CTImageFrameTypeSeq:
                case Tags.ContrastBolusIngredientCodeSeq:
                case Tags.ContrastAdministrationProfileSeq:
                case Tags.ContrastBolusUsageSeq:
                case Tags.ContributingEquipmentSeq:
                case Tags.FrameAnatomySeq:
                case Tags.FrameContentSeq:
                case Tags.PlanePositionSeq:
                case Tags.PlaneOrientationSeq:
                case Tags.DimensionOrganizationSeq:
                case Tags.DimensionIndexSeq:
                case Tags.ModalityLUTSeq:
                case Tags.VOILUTSeq:
                case Tags.SoftcopyVOILUTSeq:
                case Tags.BiPlaneAcquisitionSeq:
                case Tags.MaskSubtractionSeq:
                case Tags.PixelMeasuresSeq:
                case Tags.FrameVOILUTSeq:
                case Tags.PixelValueTransformationSeq:
                case Tags.RequestingPhysicianIdentificationSeq:
                case Tags.RequestedProcedureCodeSeq:
                case Tags.RefPatientAliasSeq:
                case Tags.DischargeDiagnosisCodeSeq:
                case Tags.ChannelDefinitionSeq:
                case Tags.ChannelSourceSeq:
                case Tags.ChannelSourceModifiersSeq:
                case Tags.SourceWaveformSeq:
                case Tags.ChannelSensitivityUnitsSeq:
                case Tags.MultiplexedAudioChannelsDescriptionCodeSeq:
                case Tags.ScheduledPerformingPhysicianIdentificationSeq:
                case Tags.ScheduledProtocolCodeSeq:
                case Tags.ProtocolContextSeq:
                case Tags.ContentItemModifierSeq:
                case Tags.SPSSeq:
                case Tags.RefNonImageCompositeSOPInstanceSeq:
                case Tags.PerformedProtocolCodeSeq:
                case Tags.ScheduledStepAttributesSeq:
                case Tags.RequestAttributesSeq:
                case Tags.PPSDiscontinuationReasonCodeSeq:
                case Tags.QuantitySeq:
                case Tags.MeasuringUnitsSeq:
                case Tags.BillingItemSeq:
                case Tags.ExposureDoseSeq:
                case Tags.BillingProcedureStepSeq:
                case Tags.FilmConsumptionSeq:
                case Tags.BillingSuppliesAndDevicesSeq:
                case Tags.RefProcedureStepSeq:
                case Tags.PerformedSeriesSeq:
                case Tags.SpecimenSeq:
                case Tags.SpecimenTypeCodeSeq:
                case Tags.AcquisitionContextSeq:
                case Tags.ImageCenterPointCoordinatesSeq:
                case Tags.PixelSpacingSeq:
                case Tags.CoordinateSystemAxisCodeSeq:
                case Tags.MeasurementUnitsCodeSeq:
                case Tags.ReasonforRequestedProcedureCodeSeq:
                case Tags.IntendedRecipientsOfResultsIdentificationSeq:
                case Tags.PersonIdentificationCodeSeq:
                case Tags.ScheduledProcessingApplicationsCodeSeq:
                case Tags.PerformedProcessingApplicationsCodeSeq:
                case Tags.HumanPerformerCodeSeq:
                case Tags.ResultingGPPPSSeq:
                case Tags.RefGPSPSSeq:
                case Tags.ScheduledWorkitemCodeSeq:
                case Tags.PerformedWorkitemCodeSeq:
                case Tags.InputInformationSeq:
                case Tags.RelevantInformationSeq:
                case Tags.ScheduledStationNameCodeSeq:
                case Tags.ScheduledStationClassCodeSeq:
                case Tags.ScheduledStationGeographicLocationCodeSeq:
                case Tags.PerformedStationNameCodeSeq:
                case Tags.PerformedStationClassCodeSeq:
                case Tags.PerformedStationGeographicLocationCodeSeq:
                case Tags.RequestedSubsequentWorkitemCodeSeq:
                case Tags.NonDICOMOutputCodeSeq:
                case Tags.OutputInformationSeq:
                case Tags.ScheduledHumanPerformersSeq:
                case Tags.ActualHumanPerformersSeq:
                case Tags.ConceptNameCodeSeq:
                case Tags.VerifyingObserverSeq:
                case Tags.VerifyingObserverIdentificationCodeSeq:
                case Tags.ConceptCodeSeq:
                case Tags.PurposeOfReferenceCodeSeq:
                case Tags.ModifierCodeSeq:
                case Tags.MeasuredValueSeq:
                case Tags.NumericValueQualifierCodeSeq:
                case Tags.PredecessorDocumentsSeq:
                case Tags.RefRequestSeq:
                case Tags.PerformedProcedureCodeSeq:
                case Tags.CurrentRequestedProcedureEvidenceSeq:
                case Tags.PertinentOtherEvidenceSeq:
                case Tags.ContentTemplateSeq:
                case Tags.IdenticalDocumentsSeq:
                case Tags.ContentSeq:
                case Tags.AnnotationSeq:
                case Tags.RealWorldValueMappingSeq:
                case Tags.SourceInstanceSeq:
                case Tags.DeviceSeq:
                case Tags.EnergyWindowInformationSeq:
                case Tags.EnergyWindowRangeSeq:
                case Tags.RadiopharmaceuticalInformationSeq:
                case Tags.DetectorInformationSeq:
                case Tags.PhaseInformationSeq:
                case Tags.RotationInformationSeq:
                case Tags.GatedInformationSeq:
                case Tags.DataInformationSeq:
                case Tags.TimeSlotInformationSeq:
                case Tags.ViewCodeSeq:
                case Tags.ViewModifierCodeSeq:
                case Tags.RadionuclideCodeSeq:
                case Tags.AdministrationRouteCodeSeq:
                case Tags.RadiopharmaceuticalCodeSeq:
                case Tags.CalibrationDataSeq:
                case Tags.PatientOrientationCodeSeq:
                case Tags.PatientOrientationModifierCodeSeq:
                case Tags.PatientGantryRelationshipCodeSeq:
                case Tags.HistogramSeq:
                case Tags.GraphicAnnotationSeq:
                case Tags.TextObjectSeq:
                case Tags.GraphicObjectSeq:
                case Tags.DisplayedAreaSelectionSeq:
                case Tags.GraphicLayerSeq:
                case Tags.RegistrationSeq:
                case Tags.MatrixRegistrationSeq:
                case Tags.MatrixSeq:
                case Tags.RegistrationTypeCodeSeq:
                case Tags.FiducialIdentifierCodeSeq:
                case Tags.UsedFiducialsSeq:
                case Tags.GraphicCoordinatesDataSeq:
                case Tags.FiducialSetSeq:
                case Tags.FiducialSeq:
                case Tags.HangingProtocolDefinitionSeq:
                case Tags.HangingProtocolUserIdentificationCodeSeq:
                case Tags.SourceHangingProtocolSeq:
                case Tags.ImageSetsSeq:
                case Tags.ImageSetSelectorSeq:
                case Tags.TimeBasedImageSetsSeq:
                case Tags.AbstractPriorCodeSeq:
                case Tags.SelectorCodeSequenceValue:
                case Tags.NominalScreenDefinitionSeq:
                case Tags.DisplaySetsSeq:
                case Tags.SynchronizedScrollingSeq:
                case Tags.NavigationIndicatorSeq:
                case Tags.ImageBoxesSeq:
                case Tags.FilterOperationsSeq:
                case Tags.SortingOperationsSeq:
                case Tags.IconImageSeq:
                case Tags.EcryptedAttributesSeq:
                case Tags.ModifiedAttributesSeq:
                case Tags.PrinterConfigurationSeq:
                case Tags.MediaInstalledSeq:
                case Tags.OtherMediaAvailableSeq:
                case Tags.SupportedImageDisplayFormatsSeq:
                case Tags.RefFilmBoxSeq:
                case Tags.RefStoredPrintSeq:
                case Tags.RefFilmSessionSeq:
                case Tags.RefImageBoxSeq:
                case Tags.RefBasicAnnotationBoxSeq:
                case Tags.BasicGrayscaleImageSeq:
                case Tags.BasicColorImageSeq:
                case Tags.RefImageOverlayBoxSeqRetired:
                case Tags.RefVOILUTBoxSeqRetired:
                case Tags.RefOverlayPlaneSeq:
                case Tags.OverlayPixelDataSeq:
                case Tags.RefImageBoxSeqRetired:
                case Tags.PresentationLUTSeq:
                case Tags.RefPresentationLUTSeq:
                case Tags.RefPrintJobSeq:
                case Tags.PrintJobDescriptionSeq:
                case Tags.RefPrintJobSeqInQueue:
                case Tags.PrintManagementCapabilitiesSeq:
                case Tags.PrinterCharacteristicsSeq:
                case Tags.FilmBoxContentSeq:
                case Tags.ImageBoxContentSeq:
                case Tags.AnnotationContentSeq:
                case Tags.ImageOverlayBoxContentSeq:
                case Tags.PresentationLUTContentSeq:
                case Tags.ProposedStudySeq:
                case Tags.OriginalImageSeq:
                case Tags.RefStorageMediaSeq:
                case Tags.ExposureSeq:
                case Tags.FluenceMapSeq:
                case Tags.RTDoseROISeq:
                case Tags.DVHSeq:
                case Tags.DVHRefROISeq:
                case Tags.RefFrameOfReferenceSeq:
                case Tags.RTRefStudySeq:
                case Tags.RTRefSeriesSeq:
                case Tags.ContourImageSeq:
                case Tags.StructureSetROISeq:
                case Tags.RTRelatedROISeq:
                case Tags.ROIContourSeq:
                case Tags.ContourSeq:
                case Tags.RTROIObservationsSeq:
                case Tags.RTROIIdentificationCodeSeq:
                case Tags.RelatedRTROIObservationsSeq:
                case Tags.ROIPhysicalPropertiesSeq:
                case Tags.FrameOfReferenceRelationshipSeq:
                case Tags.MeasuredDoseReferenceSeq:
                case Tags.TreatmentSessionBeamSeq:
                case Tags.RefTreatmentRecordSeq:
                case Tags.ControlPointDeliverySeq:
                case Tags.TreatmentSummaryCalculatedDoseReferenceSeq:
                case Tags.OverrideSeq:
                case Tags.CalculatedDoseReferenceSeq:
                case Tags.RefMeasuredDoseReferenceSeq:
                case Tags.RefCalculatedDoseReferenceSeq:
                case Tags.BeamLimitingDeviceLeafPairsSeq:
                case Tags.RecordedWedgeSeq:
                case Tags.RecordedCompensatorSeq:
                case Tags.RecordedBlockSeq:
                case Tags.TreatmentSummaryMeasuredDoseReferenceSeq:
                case Tags.RecordedSourceSeq:
                case Tags.TreatmentSessionApplicationSetupSeq:
                case Tags.RecordedBrachyAccessoryDeviceSeq:
                case Tags.RecordedChannelSeq:
                case Tags.RecordedSourceApplicatorSeq:
                case Tags.RecordedChannelShieldSeq:
                case Tags.BrachyControlPointDeliveredSeq:
                case Tags.FractionGroupSummarySeq:
                case Tags.FractionStatusSummarySeq:
                case Tags.DoseReferenceSeq:
                case Tags.ToleranceTableSeq:
                case Tags.BeamLimitingDeviceToleranceSeq:
                case Tags.FractionGroupSeq:
                case Tags.BeamSeq:
                case Tags.BeamLimitingDeviceSeq:
                case Tags.PlannedVerificationImageSeq:
                case Tags.WedgeSeq:
                case Tags.CompensatorSeq:
                case Tags.BlockSeq:
                case Tags.ApplicatorSeq:
                case Tags.ControlPointSeq:
                case Tags.WedgePositionSeq:
                case Tags.BeamLimitingDevicePositionSeq:
                case Tags.PatientSetupSeq:
                case Tags.FixationDeviceSeq:
                case Tags.ShieldingDeviceSeq:
                case Tags.SetupDeviceSeq:
                case Tags.TreatmentMachineSeq:
                case Tags.SourceSeq:
                case Tags.ApplicationSetupSeq:
                case Tags.BrachyAccessoryDeviceSeq:
                case Tags.ChannelSeq:
                case Tags.ChannelShieldSeq:
                case Tags.BrachyControlPointSeq:
                case Tags.RefRTPlanSeq:
                case Tags.RefBeamSeq:
                case Tags.RefBrachyApplicationSetupSeq:
                case Tags.RefFractionGroupSeq:
                case Tags.RefVerificationImageSeq:
                case Tags.RefReferenceImageSeq:
                case Tags.RefDoseReferenceSeq:
                case Tags.BrachyRefDoseReferenceSeq:
                case Tags.RefStructureSetSeq:
                case Tags.RefDoseSeq:
                case Tags.RefBolusSeq:
                case Tags.RefInterpretationSeq:
                case Tags.InterpretationApproverSeq:
                case Tags.InterpretationDiagnosisCodeSeq:
                case Tags.ResultsDistributionListSeq:
                case Tags.SharedFunctionalGroupsSeq:
                case Tags.PerFrameFunctionalGroupsSeq:
                case Tags.WaveformSeq:
                    return VRs.SQ;
                case Tags.TagAngleSecondAxis:
                case Tags.PixelIntensityRelationshipSign:
                case Tags.GreyLUTDescriptorRetired:
                case Tags.RedPaletteColorLUTDescriptor:
                case Tags.GreenPaletteColorLUTDescriptor:
                case Tags.BluePaletteColorLUTDescriptor:
                case Tags.LUTDescriptor:
                case Tags.TIDOffset:
                case Tags.AbstractValue:
                case Tags.SelectorSSValue:
                    return VRs.SS;
                case Tags.InstitutionAddress:
                case Tags.ReferringPhysicianAddress:
                case Tags.CodingSchemeExternal:
                case Tags.CodingSchemeName:
                case Tags.ResponsibleOrganization:
                case Tags.DerivationDescription:
                case Tags.ClinicalTrialTimePointDescription:
                case Tags.MetaboliteMapDescription:
                case Tags.ContributionDescription:
                case Tags.PartialViewDescription:
                case Tags.MaskOperationExplanation:
                case Tags.PPSComments:
                case Tags.CommentsOnRadiationDose:
                case Tags.AcquisitionContextDescription:
                case Tags.PersonAddress:
                case Tags.DocumentTitle:
                case Tags.UnformattedTextValue:
                case Tags.FiducialDescription:
                case Tags.SelectorSTValue:
                case Tags.TopicSubject:
                case Tags.ImageDisplayFormat:
                case Tags.ConfigurationInformation:
                case Tags.RTImageDescription:
                case Tags.StructureSetDescription:
                case Tags.ROIDescription:
                case Tags.ROIObservationDescription:
                case Tags.MeasuredDoseDescription:
                case Tags.OverrideReason:
                case Tags.CalculatedDoseReferenceDescription:
                case Tags.TreatmentStatusComment:
                case Tags.RTPlanDescription:
                case Tags.PrescriptionDescription:
                case Tags.BeamDescription:
                case Tags.FixationDeviceDescription:
                case Tags.ShieldingDeviceDescription:
                case Tags.SetupTechniqueDescription:
                case Tags.SetupDeviceDescription:
                case Tags.SetupReferenceDescription:
                case Tags.InterpretationText:
                case Tags.Impressions:
                case Tags.ResultsComments:
                    return VRs.ST;
                case Tags.InstanceCreationTime:
                case Tags.StudyTime:
                case Tags.SeriesTime:
                case Tags.AcquisitionTime:
                case Tags.ContentTime:
                case Tags.OverlayTime:
                case Tags.CurveTime:
                case Tags.PatientBirthTime:
                case Tags.InterventionDrugStopTime:
                case Tags.InterventionDrugStartTime:
                case Tags.TimeOfSecondaryCapture:
                case Tags.ContrastBolusStartTime:
                case Tags.ContrastBolusStopTime:
                case Tags.RadiopharmaceuticalStartTime:
                case Tags.RadiopharmaceuticalStopTime:
                case Tags.TimeOfLastCalibration:
                case Tags.TimeOfLastDetectorCalibration:
                case Tags.ModifiedImageTimeRetired:
                case Tags.StudyVerifiedTime:
                case Tags.StudyReadTime:
                case Tags.ScheduledStudyStartTime:
                case Tags.ScheduledStudyStopTime:
                case Tags.StudyArrivalTime:
                case Tags.StudyCompletionTime:
                case Tags.ScheduledAdmissionTime:
                case Tags.ScheduledDischargeTime:
                case Tags.AdmittingTime:
                case Tags.DischargeTime:
                case Tags.SPSStartTime:
                case Tags.SPSEndTime:
                case Tags.PPSStartTime:
                case Tags.PPSEndTime:
                case Tags.IssueTimeOfImagingServiceRequest:
                case Tags.Time:
                case Tags.PresentationCreationTime:
                case Tags.CreationTime:
                case Tags.StructureSetTime:
                case Tags.TreatmentControlPointTime:
                case Tags.SafePositionExitTime:
                case Tags.SafePositionReturnTime:
                case Tags.TreatmentTime:
                case Tags.RTPlanTime:
                case Tags.AirKermaRateReferenceTime:
                case Tags.ReviewTime:
                case Tags.InterpretationRecordedTime:
                case Tags.InterpretationTranscriptionTime:
                case Tags.InterpretationApprovalTime:
                    return VRs.TM;
                case Tags.InstanceCreatorUID:
                case Tags.SOPClassUID:
                case Tags.SOPInstanceUID:
                case Tags.FailedSOPInstanceUIDList:
                case Tags.CodingSchemeUID:
                case Tags.ContextGroupExtensionCreatorUID:
                case Tags.RefSOPClassUID:
                case Tags.RefSOPInstanceUID:
                case Tags.SOPClassesSupported:
                case Tags.TransactionUID:
                case Tags.CreatorVersionUID:
                case Tags.StudyInstanceUID:
                case Tags.SeriesInstanceUID:
                case Tags.FrameOfReferenceUID:
                case Tags.SynchronizationFrameOfReferenceUID:
                case Tags.ConcatenationUID:
                case Tags.DimensionOrganizationUID:
                case Tags.PaletteColorLUTUID:
                case Tags.RefGPSPSTransactionUID:
                case Tags.UID:
                case Tags.TemplateExtensionOrganizationUID:
                case Tags.TemplateExtensionCreatorUID:
                case Tags.FiducialUID:
                case Tags.StorageMediaFileSetUID:
                case Tags.EncryptedContentTransferSyntax:
                case Tags.RefFrameOfReferenceUID:
                case Tags.RelatedFrameOfReferenceUID:
                    return VRs.UI;
                case Tags.TriggerSamplePosition:
                case Tags.RegionFlags:
                case Tags.RegionLocationMinX0:
                case Tags.RegionLocationMinY0:
                case Tags.RegionLocationMaxX1:
                case Tags.RegionLocationMaxY1:
                case Tags.TransducerFrequency:
                case Tags.PulseRepetitionFrequency:
                case Tags.DopplerSampleVolumeXPosition:
                case Tags.DopplerSampleVolumeYPosition:
                case Tags.TMLinePositionX0:
                case Tags.TMLinePositionY0:
                case Tags.TMLinePositionX1:
                case Tags.TMLinePositionY1:
                case Tags.PixelComponentMask:
                case Tags.PixelComponentRangeStart:
                case Tags.PixelComponentRangeStop:
                case Tags.NumberOfTableBreakPoints:
                case Tags.TableOfXBreakPoints:
                case Tags.NumberOfTableEntries:
                case Tags.TableOfPixelValues:
                case Tags.SpectroscopyAcquisitionPhaseRows:
                case Tags.SpectroscopyAcquisitionDataColumns:
                case Tags.SpectroscopyAcquisitionOutOfPlanePhaseSteps:
                case Tags.SpectroscopyAcquisitionPhaseColumns:
                case Tags.InStackPositionNumber:
                case Tags.TemporalPositionIndex:
                case Tags.DimensionIndexValues:
                case Tags.ConcatenationFrameOffsetNumber:
                case Tags.DataPointRows:
                case Tags.DataPointColumns:
                case Tags.NumberOfWaveformSamples:
                case Tags.RefSamplePositions:
                case Tags.RefContentItemIdentifier:
                case Tags.HistogramData:
                case Tags.SelectorULValue:
                    return VRs.UL;
                case Tags.LengthToEndRetired:
                case Tags.RecognitionCodeRetired:
                case Tags.DataSetTypeRetired:
                case Tags.DataSetSubtypeRetired:
                case Tags.NetworkIDRetired:
                case Tags.UpperLowerPixelValuesRetired:
                case Tags.DynamicRangeRetired:
                case Tags.TotalGainRetired:
                case Tags.LocationRetired:
                case Tags.ReferenceRetired:
                case Tags.ImageDimensionsRetired:
                case Tags.ImageFormatRetired:
                case Tags.ManipulatedImageRetired:
                case Tags.ImageLocationRetired:
                case Tags.GrayScaleRetired:
                    return VRs.UN;
                case Tags.FailureReason:
                case Tags.PregnancyStatus:
                case Tags.SynchronizationChannel:
                case Tags.PreferredPlaybackSequencing:
                case Tags.AcquisitionMatrix:
                case Tags.ExposuresOnPlate:
                case Tags.ShutterPresentationValue:
                case Tags.ShutterOverlayGroup:
                case Tags.RegionSpatialFormat:
                case Tags.RegionDataType:
                case Tags.PhysicalUnitsXDirection:
                case Tags.PhysicalUnitsYDirection:
                case Tags.PixelComponentOrganization:
                case Tags.PixelComponentPhysicalUnits:
                case Tags.PixelComponentDataType:
                case Tags.MRAcquisitionFrequencyEncodingSteps:
                case Tags.NumberOfZeroFills:
                case Tags.NumberOfKSpaceTrajectories:
                case Tags.MRAcquisitionPhaseEncodingStepsInPlane:
                case Tags.MRAcquisitionPhaseEncodingStepsOutOfPlane:
                case Tags.RFEchoTrainLength:
                case Tags.GradientEchoTrainLength:
                case Tags.ContrastBolusAgentNumber:
                case Tags.FrameAcquisitionNumber:
                case Tags.InConcatenationNumber:
                case Tags.InConcatenationTotalNumber:
                case Tags.SamplesPerPixel:
                case Tags.PlanarConfiguration:
                case Tags.Rows:
                case Tags.Columns:
                case Tags.Planes:
                case Tags.UltrasoundColorDataPresent:
                case Tags.BitsAllocated:
                case Tags.BitsStored:
                case Tags.HighBit:
                case Tags.PixelRepresentation:
                case Tags.SmallestValidPixelValueRetired:
                case Tags.LargestValidPixelValueRetired:
                case Tags.SmallestImagePixelValue:
                case Tags.LargestImagePixelValue:
                case Tags.SmallestPixelValueInSeries:
                case Tags.LargestPixelValueInSeries:
                case Tags.SmallestImagePixelValueInPlane:
                case Tags.LargestImagePixelValueInPlane:
                case Tags.PixelPaddingValue:
                case Tags.RepresentativeFrameNumber:
                case Tags.FrameNumbersOfInterest:
                case Tags.MaskPointer:
                case Tags.RWavePointer:
                case Tags.ApplicableFrameRange:
                case Tags.MaskFrameNumbers:
                case Tags.ContrastFrameAveraging:
                case Tags.LargestMonochromePixelValue:
                case Tags.NumberOfWaveformChannels:
                case Tags.WaveformBitsStored:
                case Tags.TotalTimeOfFluoroscopy:
                case Tags.TotalNumberOfExposures:
                case Tags.EntranceDose:
                case Tags.ExposedArea:
                case Tags.RefWaveformChannels:
                case Tags.RefFrameNumbers:
                case Tags.AnnotationGroupNumber:
                case Tags.RealWorldValueLastValueMappedUS:
                case Tags.RealWorldValueFirstValueMappedUS:
                case Tags.EnergyWindowVector:
                case Tags.NumberOfEnergyWindows:
                case Tags.DetectorVector:
                case Tags.NumberOfDetectors:
                case Tags.PhaseVector:
                case Tags.NumberOfPhases:
                case Tags.NumberOfFramesInPhase:
                case Tags.RotationVector:
                case Tags.NumberOfRotations:
                case Tags.NumberOfFramesInRotation:
                case Tags.RRIntervalVector:
                case Tags.NumberOfRRIntervals:
                case Tags.TimeSlotVector:
                case Tags.NumberOfTimeSlots:
                case Tags.SliceVector:
                case Tags.NumberOfSlices:
                case Tags.AngularViewVector:
                case Tags.TimeSliceVector:
                case Tags.NumberOfTimeSlices:
                case Tags.NumberOfTriggersInPhase:
                case Tags.EnergyWindowNumber:
                case Tags.ImageIndex:
                case Tags.HistogramNumberOfBins:
                case Tags.HistogramFirstBinValue:
                case Tags.HistogramLastBinValue:
                case Tags.HistogramBinWidth:
                case Tags.GraphicDimensions:
                case Tags.NumberOfGraphicPoints:
                case Tags.ImageRotation:
                case Tags.GraphicLayerRecommendedDisplayGrayscaleValue:
                case Tags.GraphicLayerRecommendedDisplayRGBValue:
                case Tags.NumberOfPriorsReferenced:
                case Tags.SelectorValueNumber:
                case Tags.ImageSetNumber:
                case Tags.RelativeTime:
                case Tags.SelectorUSValue:
                case Tags.NumberOfScreens:
                case Tags.NumberOfVerticalPixels:
                case Tags.NumberOfHorizontalPixels:
                case Tags.ScreenMinimumGrayscaleBitDepth:
                case Tags.ScreenMinimumColorBitDepth:
                case Tags.ApplicationMaximumRepaintTime:
                case Tags.DisplaySetNumber:
                case Tags.DisplaySetPresentationGroup:
                case Tags.DisplaySetScrollingGroup:
                case Tags.NavigationDisplaySet:
                case Tags.ReferenceDisplaySets:
                case Tags.ImageBoxNumber:
                case Tags.ImageBoxTileHorizontalDimension:
                case Tags.ImageBoxTileVerticalDimension:
                case Tags.ImageBoxSmallScrollAmount:
                case Tags.ImageBoxLargeScrollAmount:
                case Tags.ImageBoxOverlapPriority:
                case Tags.MemoryBitDepth:
                case Tags.PrintingBitDepth:
                case Tags.MinDensity:
                case Tags.MaxDensity:
                case Tags.Illumination:
                case Tags.ReflectedAmbientLight:
                case Tags.ImagePositionOnFilm:
                case Tags.AnnotationPosition:
                case Tags.RefOverlayPlaneGroups:
                case Tags.MagnifyToNumberOfColumns:
                case Tags.TotalNumberOfPiecesOfMediaCreated:
                case Tags.WaveformBitsAllocated:
                    return VRs.US;
                case Tags.TextValue:
                case Tags.SelectorUTValue:
                case Tags.LabelText:
                    return VRs.UT;
                case Tags.Item:
                case Tags.ItemDelimitationItem:
                case Tags.SeqDelimitationItem:
                    return VRs.NONE;
            }
            switch (tag & 0xFF00FFFF) {
                case Tags.TypeOfData:
                case Tags.CurveActivationLayer:
                case Tags.OverlayType:
                case Tags.OverlayCompressionCodeRetired:
                case Tags.OverlayFormatRetired:
                case Tags.OverlayActivationLayer:
                    return VRs.CS;
                case Tags.ROIMean:
                case Tags.ROIStandardDeviation:
                    return VRs.DS;
                case Tags.NumberOfFramesInOverlay:
                case Tags.ROIArea:
                    return VRs.IS;
                case Tags.CurveDescription:
                case Tags.CurveLabel:
                case Tags.OverlayDescription:
                case Tags.OverlaySubtype:
                case Tags.OverlayLabel:
                    return VRs.LO;
                case Tags.AudioComments:
                case Tags.OverlayCommentsRetired:
                    return VRs.LT;
                case Tags.CurveData:
                    return VRs.OB;
                case Tags.AudioSampleData:
                case Tags.OverlayData:
                    return VRs.OW;
                case Tags.AxisUnits:
                case Tags.AxisLabels:
                case Tags.CurveRange:
                    return VRs.SH;
                case Tags.RefOverlaySeqCurve:
                    return VRs.SQ;
                case Tags.OverlayOrigin:
                    return VRs.SS;
                case Tags.NumberOfSamples:
                case Tags.SampleRate:
                case Tags.TotalTime:
                    return VRs.UL;
                case Tags.OverlayLocationRetired:
                    return VRs.UN;
                case Tags.CurveDimensions:
                case Tags.NumberOfPoints:
                case Tags.DataValueRepresentation:
                case Tags.MinimumCoordinateValue:
                case Tags.MaximumCoordinateValue:
                case Tags.CurveDataDescriptor:
                case Tags.CoordinateStartValue:
                case Tags.CoordinateStepValue:
                case Tags.AudioType:
                case Tags.AudioSampleFormat:
                case Tags.NumberOfChannels:
                case Tags.RefOverlayGroup:
                case Tags.OverlayRows:
                case Tags.OverlayColumns:
                case Tags.OverlayPlanes:
                case Tags.ImageFrameOrigin:
                case Tags.OverlayPlaneOrigin:
                case Tags.OverlayBitsAllocated:
                case Tags.OverlayBitPosition:
                case Tags.OverlayDescriptorGrayRetired:
                case Tags.OverlayDescriptorRedRetired:
                case Tags.OverlayDescriptorGreenRetired:
                case Tags.OverlayDescriptorBlueRetired:
                case Tags.OverlaysGrayRetired:
                case Tags.OverlaysRedRetired:
                case Tags.OverlaysGreenRetired:
                case Tags.OverlaysBlueRetired:
                    return VRs.US;
            }
            switch (tag & 0xFFFFFF00) {
                case Tags.SourceImageIDRetired:
                    return VRs.SH;
            }
            return VRs.UN;
        }
    };
}        
